'struct mapping' is the C representation of a Pike mapping. The struct
itself contains no user servicable parts except for the member 'refs'
which has to be increased when putting a 'struct mapping *' into a
svalue. Never _ever_ decrease the ref counter manually, use
free_mapping instead. Also note that you should never ever allocate
a mapping statically, you should always use the functions provided by
pike to allocate mappings.
A mapping is basically a hash table with a linked list of key-value
pairs in each hash bin. The hash table and the key-index pairs are
allocated together in one large block to minimize memory fragmentation.
Also note that whenever you search for a specific key-value pair in
the mapping that key-value pair is propagated to the top of the linked
list in that hash bin, which makes the search time very very small for
most cases.